<!DOCTYPE html>
<html lang="zh">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script type="text/javascript">
    // <!-- websocket👇 -->

    var start = function () {
        inc = document.getElementById('incomming');
        window.ht成品柜名 = document.getElementById('成品柜名');
        window.ht单元柜名 = document.getElementById('单元柜名');
        window.ht板名 = document.getElementById('板名');
        window.ht订单 = document.getElementById('订单');
        window.ht客户 = document.getElementById('客户');
        window.ht_X尺寸 = document.getElementById('X尺寸');
        window.ht_Y尺寸 = document.getElementById('Y尺寸');
        window.ht_Z尺寸 = document.getElementById('Z尺寸');
        window.ui路径 = document.getElementById('ui路径');

        ui路径.value=localStorage.getItem("ui路径")

        // var wsImpl = window.WebSocket || window.MozWebSocket;
        // // var form = document.getElementById('sendForm');
        // // var input = document.getElementById('sendText');
        // // inc.innerHTML += "connecting to server ..<br/>";

        // // create a new websocket and connect
        // window.ws = new wsImpl('ws://localhost:8181/');

        // // when data is comming from the server, this metod is called
        // ws.onmessage = function (evt) {
        //     inc.innerHTML = evt.data;
        // };

        // // when the connection is established, this method is called
        // ws.onopen = function () {
        //     inc.innerHTML = 'amtf_dxf 已连接';
        // };

        // // when the connection is closed, this method is called
        // ws.onclose = function () {
        //     inc.innerHTML = '';
        //     // alert("连接关闭了")
        // }


        window.ws2 = new WebSocket("ws://localhost:12111");
        ws2.onmessage = function (evt) {
          console.log(evt);
          let kk = JSON.parse(evt.data)
          console.log(kk);
          switch (true) {
            case 'sketchup' in kk:
              switch (kk.sketchup) {
                case '识别选中组件' :
                  console.log("识别选中组件");
                  sketchup.识别选中组件();
                  // sketchup.识别选中组件('arg',  {
                  //   onCompleted: function(e) {
                  //     alert(e);
                  //   }
                  // });
                  break;
                case '修改组件属性' :
                  sketchup.修改组件属性(kk.组件属性);
                  break;
                case '导出cad' :
                  sketchup.导出cad(kk.生产);
                  break;
                case '解读组件名' :
                  sketchup.解读组件名();
                  break;
                case '拼合组件名' :
                  sketchup.拼合组件名(kk.组件名);
                  break;
                default:
                  break;
              }
              break;
            default:
              break;
          }
        };

        // when the connection is established, this method is called
        ws2.onopen = function () {
            // inc.innerHTML = 'amtf_dxf 已连接';
            ws2.send(JSON.stringify({'su连接状态':'1'}));
        };

        // when the connection is closed, this method is called
        ws2.onclose = function () {
            ws2.send(JSON.stringify({'su连接状态':'0'}));
        }

    }
    window.onload = start;

    window.onbeforeunload = function(ev) {
      // return true;
      // alert('即将关闭');
      localStorage.setItem("ui路径", ui路径.value)
      return ws2.send(JSON.stringify({'su连接状态':'0'}));
    };

    // <!-- 供ruby调用V2👇 -->

    function 接收识别选中组件(params) {
      // alert(params)
      // console.log(params);
      ws2.send(params);
    }
    function 接收修改组件属性(params) {
      // alert(params)
      // console.log(params);
      ws2.send(params);
    }
    function 调用amtf_dxf2(params) {
      // alert(params)
      // console.log(params);
      ws2.send(JSON.stringify({'调用amtf_dxf2':params}));
    }
    function 接收解读后的组件名(params) {
      // alert(params)
      // console.log(params);
      ws2.send(JSON.stringify({'接收解读后的组件名':params}));
    }



    // <!-- 供ruby调用👇 -->
    // function 接收解读后的组件名fff(params) {
    //    // alert(params)
    //   let n=params.split("_");
    //   // alert(n[0])
    //   // alert(n[1])
    //   // alert(n[2])
    //   // alert(n[3])
    //   // alert(n[4])
    //   if (n[0]!="") {
    //     ht成品柜名.value=n[0]
    //   }
    //   if (n[1]!="") {
    //     ht单元柜名.value=n[1]
    //   }
    //   if (n[3]!="") {
    //     ht订单.value=n[3]
    //   }
    //   if (n[4]!="") {
    //     ht客户.value=n[4]
    //   }
    // }

    // function 调用amtf_dxf(params) {
    //   arg = "调用amtf_dxf" +"|"+ params
    //   // alert(arg)
    //   ws.send(arg);
    // }
    function 发送调试模式() {
      调式模式 = document.getElementById('调式模式');
      arg = 调式模式.checked
      // alert(arg)
      // window.location = 'skp:发送调试模式@' + arg
      sketchup.发送调试模式(arg);
    }
    function 显示边界框尺寸(params) {
      //  alert(params)
       const result = JSON.parse(params)
        ht_X尺寸.value=result["x"]
        ht_Y尺寸.value=result["y"]
        ht_Z尺寸.value=result["z"]

    }
    // <!-- 调用ruby👇 -->

    // function 解读组件名() {
    //   // alert(arguments.callee.toString())
    //   arg="arg"
    //   // window.location = 'skp:解读组件名@' + arg
    //   sketchup.解读组件名(arg);
    // }
    // function 拼合组件名() {
    //   // alert(arguments.callee.toString())
    //   let 组件名ar=[]
    //   组件名ar.push(ht成品柜名.value)
    //   组件名ar.push(ht单元柜名.value)
    //   组件名ar.push(ht板名.value)
    //   组件名ar.push(ht订单.value)
    //   组件名ar.push(ht客户.value)
    //   组件名=组件名ar.join("_")
    //   // window.location = 'skp:拼合组件名@' + 组件名
    //   sketchup.拼合组件名(组件名);
    // }



    function 测试() {
      // arg = "你好，世界"
      // alert(arg)
      // window.location = 'skp:测试@' + arg
      sketchup.测试();
      // 发送调试模式();

    }
    function 关于amtf() {
      arg = "你好，关于amtf"
      // alert(arg)
      // window.location = 'skp:关于amtf@' + arg
      sketchup.关于amtf(arg);
    }

    function 开启显示边界框尺寸(e) {
      // 调式模式 = document.getElementById('调式模式');
      arg = e.checked
      // alert(arg)
      // window.location = 'skp:开启显示边界框尺寸@' + arg
      sketchup.开启显示边界框尺寸(arg);
    }

    function 开启amtf_dxf() {
      arg = "你好，世界"
      inc = document.getElementById('incomming');
      if (inc.innerHTML=="") {
        // alert(arg)
        // window.location = 'skp:开启amtf_dxf@' + arg
        sketchup.开启amtf_dxf(arg);
        start()
      }else{

      }
    }
    function 开启amtf_su_ui() {
      // ui路径 = document.getElementById('ui路径');
      // D:\amtf\amtf_web\amtf_su_ui\dist\electron\Packaged\amtf_su_ui-win32-x64
      arg=ui路径.value
      // alert(ui路径.value)
      if (arg=="") {
        alert("请填写ui路径")
      }else{
        sketchup.开启amtf_su_ui(arg);
      }
    }
    function 隐藏本窗口() {
        sketchup.隐藏本窗口();
    }
    // function 导出cad() {
    //   inc = document.getElementById('incomming');
    //   封边 = document.getElementById('封边');
    //   // alert(封边.checked)
    //   小于多少毫米 = document.getElementById('小于多少毫米');
    //   // alert(小于多少毫米.value)
    //   封边厚度 = document.getElementById('封边厚度');
    //   每块板数量 = document.getElementById('每块板数量');
    //   // alert(封边厚度.value)
    //   arg = 封边.checked+"_"+小于多少毫米.value+"_"+封边厚度.value+"_板数"+每块板数量.value
    //   // if (inc.innerHTML=="") {
    //   //   alert("请开启 amtf_dxf 服务程序先！")
    //   // }else{
    //     // arg = "导出cad ing"
    //     // alert(arg)
    //     // window.location = 'skp:导出cad@' + arg
    //     sketchup.导出cad(arg);
    //   // }

    // }


    function 孤立() {
      // window.location = 'skp:孤立@' + arg
      sketchup.孤立();
    }
    function 选择同材质组件() {
      // arg = document.getElementById("选择同材质组件").value
      // window.location = 'skp:选择同材质组件@' + arg
      sketchup.选择同材质组件(arg);
      // alert(window.location)
    }
    function 移除组件边面材质() {
      // window.location = 'skp:移除组件边面材质@' + arg
      sketchup.移除组件边面材质(arg);
      // alert(window.location)
    }
    function 更改背板厚度() {
      arg = document.getElementById("背板厚度").value
      // window.location = 'skp:更改背板厚度@' + arg
      sketchup.更改背板厚度(arg);
      // alert(window.location)
    }
    function 刷新amtf() {
      // alert(window.location)
      arg = "刷新amtf"
      // window.location = 'skp:刷新amtf@' + arg
      sketchup.刷新amtf(arg);
      // alert(window.location)
    }

    function 清除未使用() {
      arg = "清除未使用"
      // window.location = 'skp:清除未使用@' + arg
      sketchup.清除未使用(arg);
      // try {
      //   var Message = "请选择文件夹"; //选择框提示信息
      //   var Shell = new ActiveXObject("Shell.Application");
      //   var Folder = Shell.BrowseForFolder(0, Message, 0x0040, 0x11); //起始目录为：我的电脑
      //   //var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为：桌面
      //   if (Folder != null) {
      //     Folder = Folder.items(); // 返回 FolderItems 对象
      //     Folder = Folder.item(); // 返回 Folderitem 对象
      //     Folder = Folder.Path; // 返回路径
      //     if (Folder.charAt(Folder.length - 1) != "\\") {
      //       Folder = Folder + "\\";
      //     }
      //     document.all.savePath.value = Folder;
      //     return Folder;
      //   }
      // } catch (e) {
      //   alert(e.message);
      // }
    }

    function 匹配尺寸() {
      arg = "匹配尺寸"
      // window.location = 'skp:匹配尺寸@' + arg
      sketchup.匹配尺寸(arg);

    }

    function 对齐() {
      // window.location = 'skp:对齐@' + arg
      sketchup.对齐(arg);

    }

    function 多余组件处理() {
      // window.location = 'skp:多余组件处理@' + arg
      sketchup.多余组件处理(arg);

    }

    function 另存为排版模型() {
      // window.location = 'skp:另存为排版模型@' + arg
      sketchup.另存为排版模型(arg);

      // alert(window.location)
    }

    function 删除指定图层() {
      // window.location = 'skp:删除指定图层@' + arg
      sketchup.删除指定图层(arg);

    }

    function 删除隐藏项目() {
      window.location = 'skp:删除隐藏项目@' + arg
    }

    function 删除or炸开无板字组件() {
      window.location = 'skp:删除or炸开无板字组件@' + arg
    }

    function 炸开所有子组件() {
      // window.location = 'skp:炸开所有子组件@' + arg
      sketchup.炸开所有子组件(arg);

      // alert(window.location)

    }

    function 组件改名() {
      // window.location = 'skp:组件改名@' + arg
      sketchup.组件改名(arg);

    }

    function 组件转群组() {
      // window.location = 'skp:组件转群组@' + arg
      sketchup.组件转群组(arg);

    }

    function 一键排版预处理() {
      // window.location = 'skp:一键排版预处理@' + arg
      sketchup.一键排版预处理(arg);

    }
    function 干涉检查() {
      // window.location = 'skp:干涉检查@' + arg
      sketchup.干涉检查(arg);

    }

    function 延伸背板() {
      arg = document.getElementById("延伸值").value
      // alert(arg)
      // window.location = 'skp:延伸背板@' + arg
      sketchup.延伸背板(arg);

    }


    function 文件改名() {
      // window.location = 'skp:文件改名@' + arg
      sketchup.文件改名(arg);

    }

    function 画柜子(arg) {
      // alert(arg)
      // window.location = 'skp:画柜子@' + arg
      sketchup.画柜子(arg);

    }

    function 重载ABF() {
      arg = "重载ABF？"
      // window.location = 'skp:重载ABF@' + arg
      sketchup.重载ABF(arg);
    }

  </script>
<style>
 /* input[type="button"] {
     border: 1px solid;
     margin-right: 8px;
    margin-bottom: 12px;
     color:aqua;
     border-color:aquamarine;
    text-shadow: none;
   background: transparent;
 } */


  .flex一行
  {
    display: inline-flex;
  }
  /* .inline:before {
    width: 0;
    visibility: hidden;
    content: "\a0";
} */
  .span前缀
  {
    display: flex;
    flex: none;
    align-items: center;
  }
  input{
    text-overflow: ellipsis;
  }

  #ui路径{
    width: 100%;
    color: orange
  }
</style>
</head>

<body>
    <span class="span前缀">amtf_su_ui.exe 路径:</span>
    <div>
      <input id="ui路径" placeholder="填写你放置amtf_su_ui.exe的本地路径……" />
    </div>
  <div>
    <input type="button" onclick="开启amtf_su_ui()" value="开启amtf_su_ui" />
    <input type="button" onclick="隐藏本窗口()" value="隐藏本窗口" />
  </div>
    <hr>
  <!-- Send points to JavaScript -->
  <input type="button" onclick="刷新amtf()" value="刷新amtf" />
  <input type="button" onclick="测试()" value="测试" />
  <!-- <input type="checkbox" id="调式模式" value="启用">调式模式 -->
  <input type="checkbox" id="调式模式" value="启用" checked>调式模式

  <hr>
  <input type="checkbox" id="显示边界框尺寸" value="显示边界框尺寸" onclick="开启显示边界框尺寸(this)" >显示边界框尺寸
  <!-- <p id="边界框尺寸"></p> -->
  <div>
    <span class="flex一行">
      <span class="span前缀">X尺寸</span>
      <input id="X尺寸" value="" size="4"/>
    </span>
    <span class="flex一行">
      <span class="span前缀">Y尺寸</span>
      <input id="Y尺寸" value="" size="4"/>
    </span>
    <span class="flex一行">
      <span class="span前缀">Z尺寸</span>
      <input id="Z尺寸" value="" size="4"/>
    </span>
  </div>

  <hr>

  <input type="button" onclick="孤立()" value="孤立" />
  <input type="button" onclick="清除未使用()" value="清除未使用" />
  <input type="button" onclick="选择同材质组件()" value="选择同材质组件" />
  <input type="button" onclick="移除组件边面材质()" value="移除组件边面材质" />
  <hr>

  <input type="button" onclick="更改背板厚度()" value="更改背板厚度" />
  <input id="背板厚度" value="5" size="2" />mm
  <input type="button" onclick="匹配尺寸()" value="匹配尺寸" />
  <input type="button" onclick="炸开所有子组件()" value="炸开所有子组件" />
  <hr>
  <input type="button" onclick="一键排版预处理()" value="一键排版预处理" />
  <input type="button" onclick="干涉检查()" value="干涉检查" />
  <!-- <hr>
  <input type="button" onclick="对齐()" value="对齐" />
  <input type="button" onclick="多余组件处理()" value="多余组件处理" /> -->

  <!-- <hr>
  <input type="button" onclick="另存为排版模型()" value="另存为排版模型" />
  <input type="button" onclick="删除指定图层()" value="删除指定图层" />
  <input type="button" onclick="删除隐藏项目()" value="删除隐藏项目" />
  <input type="button" onclick="删除or炸开无板字组件()" value="删除or炸开无板字组件" />
  <input type="button" onclick="组件改名()" value="组件改名" />
  <input type="button" onclick="组件转群组()" value="组件转群组" /> -->
  <hr>

  <input type="button" onclick="重载ABF()" value="重载ABF" />
  <input type="button" onclick="延伸背板()" value="延伸背板" />
  <input id="延伸值" value="5" size="2" />mm
  <!-- <input type="button" onclick="炸开所有子组件()" value="另存为排版模型" /> -->
  <!-- <input type="button" onclick="文件改名()" value="文件改名" /> -->
  <!-- <hr>
  <h3>画柜子↓</h3>
  <input type="button" onclick="画柜子('背板')" value="背板" /> -->
  <!-- <hr>
  <div><div> 批量 识别\拼合 组件名中的柜子信息👇</div>
      <input type="button" onclick="解读组件名()" value="解读组件名" />
      <div>
        <span class="flex一行">
          <span class="span前缀">成品柜名</span>
          <input id="成品柜名" value="amtf" size="10" />
        </span>
        <span class="flex一行">
          <span class="span前缀">单元柜名</span>
          <input id="单元柜名" value="amtf" size="10"/>
        </span>
        <span class="flex一行">
          <span class="span前缀">板名</span>
          <input id="板名" value="不批量修改" size="10" disabled="disabled"/>
        </span>
        <span class="flex一行">
          <span class="span前缀">订单</span>
          <input id="订单" value="amtf" size="10"/>
        </span>
        <span class="flex一行">
          <span class="span前缀">客户</span>
          <input id="客户" value="amtf" size="10"/>
        </span>
      </div>
      <input type="button" onclick="拼合组件名()" value="拼合组件名" />
  </div> -->
  <!-- <hr>
  <input type="checkbox" id="封边" value="启用" checked>启用四面封边
  <p>小于多少<input id="小于多少毫米" value="12" size="2" />毫米不封边</p>
  <p>封边厚度 <input id="封边厚度" value="1" size="2" />毫米</p>
  <p>每块板数量 <input id="每块板数量" value="1" size="2" />块</p>
    <pre id="incomming"></pre>
    <input type="button" onclick="导出cad()" value="导出cad" />
  <p>群组含以下关键词会被排除：参考|布局盒子</p> -->
  <hr>
  <input type="button" onclick="关于amtf()" value="关于amtf😄" />
  <!-- <input type="button" onclick="导出cad()" value="导出cad" /> -->


</body>

</html>
